package com.fl.nj.mapper;

import com.fl.nj.entity.TableSchema;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 表结构信息Mapper接口
 * 用于定义对TableSchema实体的数据库操作方法
 */
@Mapper
public interface TableSchemaMapper {
    /**
     * 保存表结构信息
     * @param schema 表结构信息对象
     */
    void save(TableSchema schema);

    /**
     * 更新表结构信息
     * @param schema 表结构信息对象
     */
    void update(TableSchema schema);

    /**
     * 根据ID获取表结构信息
     * @param id 表结构ID
     * @return 表结构信息对象
     */
    TableSchema getById(Long id);

    /**
     * 根据数据库配置ID和表名获取表结构信息
     * @param dbConfigId 数据库配置ID
     * @param tableName 表名
     * @return 表结构信息对象
     */
    TableSchema getByDbConfigIdAndTableName(@Param("dbConfigId") Long dbConfigId, @Param("tableName") String tableName);

    /**
     * 根据数据库配置ID获取所有表结构信息
     * @param dbConfigId 数据库配置ID
     * @return 表结构信息列表
     */
    List<TableSchema> getByDbConfigId(Long dbConfigId);

    /**
     * 获取所有表结构信息
     * @return 表结构信息列表
     */
    List<TableSchema> getAll();

    /**
     * 删除表结构信息
     * @param id 表结构ID
     */
    void delete(Long id);
}